package com.smart.community.work.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;

/**
 * 保洁任务开始执行DTO
 * 
 * 严格按照《Java后端SpringBoot代码开发规范_重构版.md》DTO规范实现：
 * - 使用@Data注解：自动生成getter/setter方法
 * - 参数验证：使用JSR-303注解进行参数验证
 * - 完整注释：所有字段都有完整的JavaDoc注释
 * - 序列化支持：实现Serializable接口
 * - 字段命名：使用驼峰命名法
 * - 类型安全：使用具体的类型而不是Object
 * 
 * @author Wu.Liang
 * @since 2025-01-30
 * @version 1.0.0
 */
@Data
@Schema(description = "保洁任务开始执行参数")
public class CleaningTaskStartDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    @Schema(description = "任务ID", example = "1", required = true)
    @NotNull(message = "任务ID不能为空")
    private Long taskId;

    @Schema(description = "清洁前照片列表", example = "[\"/api/files/uploads/cleaning/1/photo1.jpg\", \"/api/files/uploads/cleaning/1/photo2.jpg\"]")
    private List<String> beforePhotos;

    @Schema(description = "使用工具", example = "拖把、清洁剂")
    private String toolsUsed;

    @Schema(description = "备注信息", example = "清洁过程中发现的问题")
    private String remark;
}
